package pe.com.bn.sach.dao.impl;

import java.util.ArrayList;
import java.util.List;
import com.ibatis.sqlmap.client.SqlMapClient;
import pe.com.bn.sach.dao.AgenciaDAO;
import pe.com.bn.sach.domain.Bnchf15Agencia;
import pe.com.bn.sach.domain.BnchfxxAgencia;

public class AgenciaImpl implements AgenciaDAO {

	
	protected SqlMapClient sqlMap = null;
	
	public void setSqlMap(SqlMapClient sqlMap) {
		this.sqlMap = sqlMap;
	}

	public List listAgencia() throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlAgencia.listaAgencia","");
		//return agencia; 
	}
	
	public void GuardaAgencia(Bnchf15Agencia bnchf15Agencia)throws Exception{
		try{
		sqlMap.startTransaction();
		sqlMap.insert("sqlAgencia.GuardaAgencia",bnchf15Agencia);   
		sqlMap.commitTransaction();
		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		 } finally {
		    sqlMap.endTransaction();
		  }
		

		
	} 
	public List listarAgencia(BnchfxxAgencia bnchfxxAgencia) throws Exception{
		return (List)sqlMap.queryForList("sqlAgencia.listarAgencia",bnchfxxAgencia);
	}
	
	public List listAgencia(BnchfxxAgencia bnchfxxAgencia) throws Exception{
		return (List)sqlMap.queryForList("sqlAgencia.buscarAgencia",bnchfxxAgencia);
	}
	public BnchfxxAgencia buscarAgenciaxId(BnchfxxAgencia bnchfxxAgencia) throws Exception{
		return (BnchfxxAgencia)sqlMap.queryForObject("sqlAgencia.buscarAgenciaxId",bnchfxxAgencia);
	}

	public BnchfxxAgencia encontrarAgencia(BnchfxxAgencia bnchfxxAgencia) throws Exception{
		return (BnchfxxAgencia)sqlMap.queryForList("sqlAgencia.encontrarAgencia",bnchfxxAgencia).get(0);
	}
	public List listarAgenciaDisponibles() throws Exception{
		
		 
		return (List)sqlMap.queryForList("sqlAgencia.listarAgenciaDisponibles");
	}
	   
         
	public String validaAgenciaAsignadas(String idAgencia){
        
		BnchfxxAgencia bnchfxxAgencia=new BnchfxxAgencia();
		bnchfxxAgencia.setCoddep4(idAgencia);
		String rpta=""; 
		try {     
		rpta = (String)sqlMap.queryForObject("sqlAgencia.validaAgenciaAsignadas",bnchfxxAgencia);	    	    
		if(rpta ==null){
			rpta="0";
		}
		return rpta;
		} catch (Exception e) {
		//     throw new Exception("Error en generar codigo expediente: " + e);
		return rpta="0";
		}
	}
	
	//agencia
	

	
	
	
}
